The improved price-performance of digital technology has made possible the advent of digital media broadcasting. The reduced cost of microprocessors, digital memory, and related devices has made it possible to place computers in set-top boxes (STBs) and related devices to receive digital cable or digital satellite television signals and decode those signals into audio-visual programs.
The advent of digital television broadcasting and the proliferation of STBs also makes it possible to enhance viewers' television experiences. In addition to transmitting video and audio data, digital media broadcasting allows additional data to be transmitted to the STBs with which users can interact. By analogy, users can interact through an STB with data transmitted via the digital media broadcast the way a computer user can interact with data available over the Internet. For example, digital television subscribers are already acquainted with an electronic program guide (EPG) function which enables users to select and tune to particular programs and/or read about the programs being shown at present or at later points in time.
The EPG is a rudimentary example of an interactive television application exploiting the capability of the digital broadcast medium to transmit additional content and for the STB to execute this additional content. The computer functionality of STBs also makes other interactive television applications possible. With appropriately configured STBs, users potentially can play along with game shows, take tests in on-line distance learning courses, bid in on-line auctions, and otherwise actively engage the content being broadcast. STBs thus allow users to have highly interactive television experiences.
One type of additional content application which is desirable in such a broadcast environment is one which provides functionality synchronized with video or audio content on a broadcast channel. In the examples of interactive game shows, on-line distance learning testing, and on-line auctions, it would be highly desirable to provide application-specific behaviors in an STB which are correlated to associated video and audio streams being broadcast. Providing application-specific behaviors in the STB and correlating the application-specific behaviors with video and audio streams presents a number of concerns. These concerns and conventional responses to these concerns are described in detail in the co-pending patent applications incorporated by reference. Nonetheless, at least some of these concerns merit repeating.
First, synchronizing behaviors of the application specific programming with a series of events in the video and audio data can be difficult. Applications of this type conventionally use asynchronous trigger signals embedded in the broadcast signal. These asynchronous trigger signals can be difficult to deliver accurately when data blocks carrying such triggers must be multiplexed with so much other video and audio data transmitted in the medium. Further, these time-dependencies present particular concerns when a user engages a program already in progress and may have missed a timing synchronization event at the outset of the program. Correlating the application-specific programming with the video and audio stream may be troublesome, if even possible.
Second, providing application specific behaviors to STBs conventionally involves transmitting application-specific program code to the STBs. The transmission would be carried through the digital broadcast medium, just as video and audio data are transmitted. Downloading such applications involves transmitting potentially many data packets, comprising vast numbers of data blocks, for each application. A concern arises because video and audio data for the numerous channels being transmitted leaves little bandwidth for other data. Thus, it may be difficult to procure the bandwidth necessary to transmit large bodies of application specific programming to support desired behaviors in STBs. Moreover, STBs may have relatively little random access memory (RAM) in which to store significant applications.
Third, and potentially more troubling, is that creating interactive programming conventionally involves programmers having to write application code specific to each program. Writing, testing, and debugging application code for each episode of a program is time- and labor-intensive. It may be difficult to generate application code correlated to underlying video and audio content in time to meet programming schedules. Also, having skilled programmers and software engineers capable of writing the application code is likely to be expensive. Each of these concerns is magnified in light of the concerns with timing synchronization and the need to generate short, efficient code to minimize bandwidth demands as previously described.
Thus, there are unmet needs in the art for methods and systems for efficiently developing interactive content and for generating appropriately synchronized applications which can be communicated to STBs and other user facilities without overwhelming available bandwidth capacities.